A graphics processing unit or “GPU” is a device used to perform graphics rendering operations in modern computing systems such as desktops, notebooks, and video game consoles, etc. Traditionally, graphics processing units are typically supplied as either integrated units or within discrete video cards.
Integrated graphics processing units are graphics processors that utilize a portion of a computer's system memory rather than having its own dedicated memory. Due to this arrangement, integrated GPUs are typically localized in close proximity to, if not disposed directly upon, some portion of the main circuit board (e.g., a motherboard) of the computing system. Integrated GPUs are, in general, cheaper to implement than discrete GPUs, but are typically lower in capability and operate at reduced performance levels relative to discrete GPUs.
Discrete or “dedicated” GPUs are distinguishable from integrated GPUs by having local memory dedicated for use by the GPU which they do not share with the underlying computer system. Commonly, discrete GPUs are implemented on discrete circuit boards called “video cards” which include, among other components, a GPU, the local memory, communication buses and various output terminals. These video cards typically interface with the main circuit board of a computing system through a standardized expansion slot such as PCI Express (PCIe) or Accelerated Graphics Port (AGP), upon which the video card may be mounted. In general, discrete GPUs are capable of significantly higher performance levels relative to integrated GPUs. However, discrete GPUs also typically require their own separate power inputs, and require higher capacity power supply units to function properly. Consequently, discrete GPUs also have higher rates of power consumption relative to integrated graphics solutions.
Some modern main circuit boards often include an integrated graphics processing unit as well as one or more additional expansion slots available to add a dedicated graphics unit. Each GPU can and typically does have its own output terminals with one or more ports corresponding to one or more audio/visual standards (e.g., VGA, HDMI, DVI, etc.), though typically only one of the GPUs will be running in the computing system at any one time. Alternatively, other modern computing systems can include a main circuit board capable of simultaneously utilizing two identical dedicated graphics units to generate output for one or more displays.
Some notebook and laptop computers have been manufactured to include two or more graphics processors. Notebook and laptop computers with more than one graphics processing units are almost invariably solutions featuring an integrated GPU and a discrete GPU. Unlike configurations common to desktop computers however, due to size and weight constraints, the discrete graphics processors in mobile computing systems may be non-standardized, and specific to the laptop or notebook's particular make or model. Furthermore, unlike desktop computers featuring multiple graphics processors, mobile computing systems with an integrated GPU and a discrete GPU may share the same output terminals (e.g., the integrated monitor and a single output terminal with one or more ports).
In one embodiment of a notebook computing system having both an integrated GPU as well as a discrete GPU that share the same output terminals, a user is able to select a particular GPU to use, e.g., to perform a certain task or under specific circumstances. Invariably, the two graphics processors will share some displays. For example, at one point in time, the user may prefer lower power consumption and extended battery life, and can opt to use the more energy efficient graphics processing units (e.g., the integrated GPU). Conversely, at some other time the user may prefer performance, and can switch to the higher performance graphics processing units (e.g., the discrete GPU). Traditionally, switching the operating GPU would require a hard reboot of the entire system—a process which can take up to a few minutes to complete, depending on the system. Understandably, this can detract from a user's experience and may not automatically store all of the user's progress after the reboot. Other embodiments may have more than two GPUs, or multiple discrete GPU's, or multiple integrated GPUs.
The problem is exacerbated when multiple displays are also involved during the switch from one GPU to the other. Due to the differences in performance capabilities between the two graphics processing units, a discrete GPU may be capable of producing output at performance levels exceeding that which an integrated GPU is capable of generating. For example, discrete graphics processing units may be able to produce displays at higher settings. These settings may be arranged into pre-set display modes, selectable by a user (typically through an interface) to configure the display produced by the operating GPU. Typically, these settings include a plurality of resolutions, color bit depths and pixel clocks.
Thus, if a discrete GPU generating output at a certain display mode is detached from the corresponding display, is switched to a lower performing integrated GPU incapable of producing displays at the elected display mode, and is later reattached to the display while the integrated GPU is running, the resultant output generated by the GPU and presented in the display may vary significantly between the two GPUs, according to the specific graphics processing units involved. In some cases, a display may not be presented at all. Alternatively, a display may be presented with moderate to severe distortion at a lower resolution. Furthermore, GPUs of different makes and models may use inconsistent algorithms or other operations to calculate or determine supportable display modes. These inconsistencies can result is display modes with slight divergences. Consequently, this may require additional user configuration to be resolved, further negatively impacting the user experience.